﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LIM.controller;
using LIM.model;

namespace LIM.forms.uc_CRM_KhachHang_ChiTiet
{
    public partial class uc_CRM_ThongTinKhachHang : UserControl
    {
        public uc_CRM_ThongTinKhachHang()
        {
            InitializeComponent();
        }
        void LoadDMCombobox()
        {
            radDropDownList_TinhThanh.DataSource = parentForm.KhachHangController.LoadDMTinhThanh();
            radDropDownList_TinhThanh.DisplayMember = "TenGoi";
            radDropDownList_TinhThanh.ValueMember = "RowID";
            //radDropDownList_QuanHuyen.DataSource = parentForm.KhachHangController.LoadDMQuanHuyen();
            if (parentForm.SelectedEntity != null)
            {
                radDropDownList_LaCongTyConCua.DataSource = parentForm.KhachHangController.LoadLaCongtyConCua(parentForm.SelectedEntity.RowID);
                radDropDownList_LaCongTyConCua.DisplayMember = "TenGoi";
                radDropDownList_LaCongTyConCua.ValueMember = "RowID";
            }
            //radDropDownList_LoaiKhachHang.DataSource = parentForm.KhachHangController.LoadDMHeThong(0);// nhap RowID của loại khách hàng
            //radDropDownList_LoaiKhachHang.DisplayMember = "TenGoi";
            //radDropDownList_LoaiKhachHang.ValueMember = "RowID";
            radDropDownList_DanhGiaKhachHang.DataSource = parentForm.KhachHangController.LoadDMHeThong(16);// nhap RowID của Danh gia khach hàng
            radDropDownList_DanhGiaKhachHang.DisplayMember = "TenGoi";
            radDropDownList_DanhGiaKhachHang.ValueMember = "MaDanhMuc";
            radDropDownList_TinhTrangKhachHang.DataSource = parentForm.KhachHangController.LoadDMHeThong(26);// nhap RowID của Tinh trang khach hàng
            radDropDownList_TinhTrangKhachHang.DisplayMember = "TenGoi";
            radDropDownList_TinhTrangKhachHang.ValueMember = "MaDanhMuc";
            radDropDownList_NhanVienEDCDangChamSoc.DataSource = parentForm.KhachHangController.LoadDMThongTinNhanVien();// nhap RowID cua Nhan Vien EDC dang cham soc
            radDropDownList_NhanVienEDCDangChamSoc.DisplayMember = "HoTen";
            radDropDownList_NhanVienEDCDangChamSoc.ValueMember = "HoTen";
        }
        radForm_CRM_KhachHang_ChiTiet parentForm = null;
        private void uc_CRM_ThongTinKhachHang_Load(object sender, EventArgs e)
        {
            parentForm = (radForm_CRM_KhachHang_ChiTiet)this.ParentForm;
            if (parentForm != null)
            {
                parentForm.OnPageChange += new radForm_CRM_KhachHang_ChiTiet.RadPageViewSelectedPageChanged(parentForm_OnPageChange);
            }
            if (parentForm.KhachHangController == null)
            {
                parentForm.KhachHangController = new DanhMucKhachHangController();
            }
            this.radDropDownList_LoaiKhachHang.SelectedIndex = 0;
            LoadDMCombobox();
        }

        private void radDropDownList_LoaiKhachHang_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            radForm_CRM_KhachHang_ChiTiet radForm_CRM_KhachHang_ChiTiet = GetParentForm(this);
            if (radDropDownList_LoaiKhachHang.SelectedIndex > -1)
                radForm_CRM_KhachHang_ChiTiet.HideUnhidePageView_LoaiKhachHang(radDropDownList_LoaiKhachHang.SelectedIndex);
        }

        void LoadRadDropDownList_LoaiKhachHang()
        {
           
        }

        private radForm_CRM_KhachHang_ChiTiet GetParentForm(Control control)
        {
            if (control.Parent is radForm_CRM_KhachHang_ChiTiet)
                return (radForm_CRM_KhachHang_ChiTiet)control.Parent;
            else
            {
                if(control.Parent !=null)
                {
                    return GetParentForm(control.Parent);
                }
            }
            return null;
        }
        void parentForm_OnPageChange()
        {
           BindControls();
        }
        protected void BindControls()
        {
            if (parentForm.SelectedEntity == null)
            {
                parentForm.SelectedEntity = new tbl_CRM_KhachHang();
            }
            radTextBox_MaKhachHang.Text = parentForm.SelectedEntity.MaKhachHang;
            radTextBox_TenKhachHang.Text = parentForm.SelectedEntity.TenGoi;
            radTextBox_TenGoiNgan.Text = parentForm.SelectedEntity.TenGoiNgan;
            radTextBox_DiaChi.Text = parentForm.SelectedEntity.DiaChi;
            if (parentForm.SelectedEntity.RowIDTinhThanh != null)
            {
                radDropDownList_TinhThanh.SelectedValue = parentForm.SelectedEntity.RowIDTinhThanh;
            }
            if (parentForm.SelectedEntity.RowIDQuanHuyen != null)
            {
                radDropDownList_QuanHuyen.SelectedValue = parentForm.SelectedEntity.RowIDQuanHuyen;
            }
            radTextBox_QuocGia.Text = parentForm.SelectedEntity.QuocGia;
            radTextBox_LinhVucKinhDoanh.Text = parentForm.SelectedEntity.LinhVucKinhDoanh;
            radTextBox_GhiChu.Text = parentForm.SelectedEntity.GhiChu;
            radTextBox_NguonTiepCan.Text = parentForm.SelectedEntity.NguonTiepCan;
            if (parentForm.SelectedEntity.LoaiKhachHang == "Là khách hàng kiểm nghiệm" || parentForm.SelectedEntity.LoaiKhachHang == null)
            {
                radDropDownList_LoaiKhachHang.SelectedIndex = 0;
            }
            else if (parentForm.SelectedEntity.LoaiKhachHang == "Là nhà cung cấp")
            {
                radDropDownList_LoaiKhachHang.SelectedIndex = 1;
            }
            else if (parentForm.SelectedEntity.LoaiKhachHang == "Là nhà thầu phụ")
            {
                radDropDownList_LoaiKhachHang.SelectedIndex = 2;
            }
           // LoadRadDropDownList_LoaiKhachHang();
            //Thông Tin Khác
            radTextBox_SoDienThoai.Text = parentForm.SelectedEntity.SoDienThoai;
            radTextBox_SoFax.Text = parentForm.SelectedEntity.SoFax;
            radTextBox_TenGhiTrenHoaDonVAT.Text = parentForm.SelectedEntity.TenGhiHoaDon;
            radTextBox_MaSoThue.Text = parentForm.SelectedEntity.MaSoThue;
            radTextBox_TaiKhoanNganHang.Text = parentForm.SelectedEntity.TaiKhoanNganHang;
            radDropDownList_DanhGiaKhachHang.SelectedValue = parentForm.SelectedEntity.DanhGiaKhachHang;
            radDropDownList_TinhTrangKhachHang.SelectedValue = parentForm.SelectedEntity.TinhTrangKhachHang;
            radDropDownList_NhanVienEDCDangChamSoc.SelectedValue = parentForm.SelectedEntity.NhanVienChamSocKhachHang;

            BindControlsNgayCapNhat();
        }
        private void BindControlsNgayCapNhat()
        {
            this.radLabel_NgayTao.Text = "";
            this.radLabel_NhanVienTao.Text = "";

            if (parentForm.SelectedEntity.NgayTao.HasValue)
                this.radLabel_NgayTao.Text = "Ngày tạo: " + parentForm.SelectedEntity.NgayTao.Value.ToString("dd/MM/yyyy hh:mm");
            if (!string.IsNullOrEmpty(parentForm.SelectedEntity.NguoiTao))
                this.radLabel_NhanVienTao.Text = "Người tạo: " + parentForm.SelectedEntity.NguoiTao;
        }

        private void radMenuItem_Refresh_Click(object sender, EventArgs e)
        {
            BindControls();
        }

        private void radMenuItem_LuuLai_Click(object sender, EventArgs e)
        {
            if (!IsValidatedSaving())
                return;

            Application.UseWaitCursor = true;
            parentForm.SelectedEntity.MaKhachHang = this.radTextBox_MaKhachHang.Text.Trim();
            parentForm.SelectedEntity.TenGoi = this.radTextBox_TenKhachHang.Text.Trim();
            parentForm.SelectedEntity.TenGoiNgan = this.radTextBox_TenGoiNgan.Text.Trim();
            parentForm.SelectedEntity.DiaChi = this.radTextBox_DiaChi.Text;

            if (radDropDownList_TinhThanh.SelectedValue != null )
            {
                if (radDropDownList_TinhThanh.SelectedValue.ToString() != "0")
                {
                    parentForm.SelectedEntity.RowIDTinhThanh = (int)this.radDropDownList_TinhThanh.SelectedValue;
                }
            }
            if (radDropDownList_QuanHuyen.SelectedValue != null)
            {
                if (radDropDownList_QuanHuyen.SelectedValue.ToString() != "0")
                {
                    parentForm.SelectedEntity.RowIDQuanHuyen = (int)this.radDropDownList_QuanHuyen.SelectedValue;
                }
            }
            parentForm.SelectedEntity.QuocGia = this.radTextBox_QuocGia.Text;
            parentForm.SelectedEntity.LinhVucKinhDoanh = this.radTextBox_LinhVucKinhDoanh.Text;
            parentForm.SelectedEntity.GhiChu = this.radTextBox_GhiChu.Text;
            parentForm.SelectedEntity.NguonTiepCan = this.radTextBox_NguonTiepCan.Text;
            if (radDropDownList_LoaiKhachHang.SelectedValue != null)
            {
                parentForm.SelectedEntity.LoaiKhachHang = this.radDropDownList_LoaiKhachHang.SelectedValue.ToString();
            }

            //Thông Tin Khác
            parentForm.SelectedEntity.SoDienThoai = this.radTextBox_SoDienThoai.Text;
            parentForm.SelectedEntity.SoFax = this.radTextBox_SoFax.Text;
            parentForm.SelectedEntity.TenGhiHoaDon = this.radTextBox_TenGhiTrenHoaDonVAT.Text;
            parentForm.SelectedEntity.MaSoThue = this.radTextBox_MaSoThue.Text;
            parentForm.SelectedEntity.TaiKhoanNganHang = this.radTextBox_TaiKhoanNganHang.Text;
            parentForm.SelectedEntity.DanhGiaKhachHang = this.radDropDownList_DanhGiaKhachHang.SelectedValue.ToString();
            parentForm.SelectedEntity.TinhTrangKhachHang = this.radDropDownList_TinhTrangKhachHang.SelectedValue.ToString();
            parentForm.SelectedEntity.NhanVienChamSocKhachHang = this.radDropDownList_NhanVienEDCDangChamSoc.SelectedValue.ToString();
            if (radDropDownList_LoaiKhachHang.Text != "")
            {
                parentForm.SelectedEntity.LoaiKhachHang = this.radDropDownList_LoaiKhachHang.Text;
            }

            if (parentForm.SelectedEntity.RowID == 0)
            {
                parentForm.SelectedEntity.NgayTao = parentForm.KhachHangController.GetCurrentDateTimeFromDatabaseServer();
                parentForm.SelectedEntity.NguoiTao = InitUserInfos.UserName;
            }
            parentForm.SelectedEntity.NgayCapNhat = parentForm.KhachHangController.GetCurrentDateTimeFromDatabaseServer();
            parentForm.SelectedEntity.NguoiCapNhat = InitUserInfos.UserName;

            string _mess = "";
            int _code = 0;
            if (parentForm.KhachHangController.SaveObject(parentForm.SelectedEntity, out _mess, out _code))
            {
                RadDesktopAlert_SavingStatus.ShowAlertSaveSuccess("Thông tin khách hàng", "Đã lưu thành công!");
                radMenuItem_Refresh_Click(sender, e);
            }
            else
                MessageBox.Show(_mess);
        }
        private bool IsValidatedSaving()
        {
            if (string.IsNullOrEmpty(this.radTextBox_MaKhachHang.Text.Trim()))
            {
                MessageBox.Show("Mã Khách hàng không được để trống", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (string.IsNullOrEmpty(this.radTextBox_TenKhachHang.Text.Trim()))
            {
                MessageBox.Show("Tên khách hàng không được để trống", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (string.IsNullOrEmpty(this.radTextBox_TenGhiTrenHoaDonVAT.Text.Trim()))
            {
                MessageBox.Show("Tên ghi trên hóa đơn VAT không được để trống", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (string.IsNullOrEmpty(this.radTextBox_MaSoThue.Text.Trim()))
            {
                MessageBox.Show("Mã số thuế không được để trống", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (string.IsNullOrEmpty(this.radTextBox_TaiKhoanNganHang.Text.Trim()))
            {
                MessageBox.Show("Tài khoản ngân hàng không được để trống", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            return true;
        }

        private void radMenuItem_XoaBo_Click(object sender, EventArgs e)
        {
            if (!IsValidatedDeleting())
                return;

            if (MessageBox.Show("Khách hàng " + parentForm.SelectedEntity.TenGoi + " sẽ bị xóa." + Environment.NewLine + "Xin xác nhận lại việc có tiếp tục xóa hay không?", "Xóa chỉ tiêu", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                if (parentForm.KhachHangController.IsCheckConstainRowIDKhachHang(parentForm.SelectedEntity.RowID))
                {
                    MessageBox.Show("Khách hàng " + parentForm.SelectedEntity.TenGoi + " đang tồn tại ở những danh mục khách nên không thể xóa.", "Xóa khách hàng", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    string _mess = "";
                    if (parentForm.KhachHangController.DeleteObject(parentForm.SelectedEntity, out _mess))
                    {
                        RadDesktopAlert_SavingStatus.ShowAlertDeleteSuccess("Thông tin khách hàng", "Đã xóa thành công khách hàng!");
                        //parentForm.RefreshData();
                        parentForm.SelectedEntity = new tbl_CRM_KhachHang();
                        BindControls();
                    }
                    else
                        MessageBox.Show(_mess);
                }
            }
        }
        private bool IsValidatedDeleting()
        {
            if (parentForm.SelectedEntity.RowID == 0)
            {
                MessageBox.Show("Cần phải chọn Khách hàng cần xóa", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            return true;
        }

        private void radDropDownList_TinhThanh_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            if (radDropDownList_TinhThanh.SelectedValue != null)
            {
                int a = ((tbl_DanhMuc_TinhThanh)radDropDownList_TinhThanh.SelectedItem.DataBoundItem).RowID ;
                radDropDownList_QuanHuyen.DataSource = parentForm.KhachHangController.LoadDMQuanHuyen(a);
                radDropDownList_QuanHuyen.DisplayMember = "TenGoi";
                radDropDownList_QuanHuyen.ValueMember = "RowID";
            }
        }
    }
}
